package com.glsc.ngateway.common.base.domain.mysql.gateway.platform.smartbi;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;

@Entity
//@Table(name = "T_MENU",schema = "DDW_USER")
@Table(name = "t_smartbi_menu")
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@EntityListeners(AuditingEntityListener.class)
public class SmartBiMenu implements Serializable {

    @Id
    @Column(name = "menu_id")
    String menuId;

    @Column(name = "level1_name")
    String level1Name;

    @Column(name = "level2_name")
    String level2Name;

    @Column(name = "level3_name")
    String level3Name;

    @Column(name = "order_num")
    String orderNum;

    @Column(name = "menu_type")
    String menuType;

    @Column(name = "bi_resid")
    String biResid;

    @Column(name = "status")
    String status;

    @Column(name = "create_id", updatable = false)
    String createId;

    @CreatedDate
    @Column(name = "create_date", columnDefinition = "date", updatable = false)
    LocalDateTime createDate;

    @Column(name = "update_id")
    String updateId;

    @LastModifiedDate
    @Column(name = "update_date", columnDefinition = "date", nullable = false)
    LocalDateTime updateDate;

    @Column(name = "bi_version")
    String biVersion;

    @ApiModelProperty(value = "系统标识，如amprod,ysp,glam,absmanage,glrm等，字典：vdict_system_id'")
    @Column(name = "system_id", columnDefinition = "varchar(64) comment '系统标识，字典：vdict_system_id'")
    private String systemId;

    public String getMenuId() {
        return menuId;
    }

    public void setMenuId(String menuId) {
        this.menuId = menuId;
    }

    public String getLevel1Name() {
        return level1Name;
    }

    public void setLevel1Name(String level1Name) {
        this.level1Name = level1Name;
    }

    public String getLevel2Name() {
        return level2Name;
    }

    public void setLevel2Name(String level2Name) {
        this.level2Name = level2Name;
    }

    public String getLevel3Name() {
        return level3Name;
    }

    public void setLevel3Name(String level3Name) {
        this.level3Name = level3Name;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public String getMenuType() {
        return menuType;
    }

    public void setMenuType(String menuType) {
        this.menuType = menuType;
    }

    public String getBiResid() {
        return biResid;
    }

    public void setBiResid(String biResid) {
        this.biResid = biResid;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getCreateId() {
        return createId;
    }

    public void setCreateId(String createId) {
        this.createId = createId;
    }

    public String getUpdateId() {
        return updateId;
    }

    public void setUpdateId(String updateId) {
        this.updateId = updateId;
    }

    public LocalDateTime getCreateDate() {
        return createDate;
    }

    public void setCreateDate(LocalDateTime createDate) {
        this.createDate = createDate;
    }

    public LocalDateTime getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(LocalDateTime updateDate) {
        this.updateDate = updateDate;
    }

    public String getBiVersion() {
        return biVersion;
    }

    public void setBiVersion(String biVersion) {
        this.biVersion = biVersion;
    }

    public String getSystemId() {
        return systemId;
    }

    public void setSystemId(String systemId) {
        this.systemId = systemId;
    }
}
